今天要來介紹如何建置WDF編譯環境,需要下載Visual Studio, SDK及WDK。
如此一來基本的開發套件都下載完成了,接下來就可以測試編譯環境是否能順利編譯。
開啟Visual Studio 2022,選取建立新的專案。
剛剛安裝WDK的Visual Studio元件主要用意在這裡,元件會一併安裝WDF的專案範本,上方選取C++/Windows/Driver,下方就會出現所有WDF的專案範本,這裡我們選取Kernel Mode Driver做編譯測試,接著點選下一步。
這裡都維持預設值即可,最後點選建立。
專案建立完成後,我們可以在畫面右上方對KMDF Driver1點右鍵選取建置。
可是這裡會發現編譯錯誤,有E1696及MSB8040兩個主要的錯誤訊息,我們先來處理MS8804的錯誤訊息。
MSB8040主要是因為組態屬性>C/C++>程式碼產生>Spectre 風險降低被設定為啟用,需要Spectre風險降低的程式庫,這裡採取下載Spectre風險降低的程式庫來解決這個問題。而Spectre風險降低的程式庫在一開始安裝Visual Studio時並未一併下載,必須重新透過Visual Studio的安裝檔來下載。
執行安裝檔後選取修改。
之後選取個別元件,依據所安裝的MSVC版本及平台去尋找降低Spectre風險的程式庫。
而E1696這個錯誤,在這個範本裏是由於無法開啟.tmh(Trace Message Header File 追蹤訊息標頭檔)所產生的,因為KMDF範本使用了WPP軟體追蹤,這個功能用於新增追蹤訊息以協助偵錯驅動程式。
KMDF範本已將WPP軟體追蹤相關的設定都已設定好,現在只需要對方案點右鍵,選取分析與程式碼清除>針對方案執行Code Analysis.
執行Code Analysis會一併重建專案。
最後成功重建專案。
到這裡我們就完成了今天的任務,成功建置WDF編譯環境。
下載 Windows 驅動程式套件 (WDK) - Windows drivers | Microsoft Learn
MSBuild 錯誤 MSB8040 - MSBuild | Microsoft Learn
在 KMDF 驅動程式中使用 WPP 軟體追蹤 - Windows drivers | Microsoft Learn